clear
addpath '..\common'

% 参数设置
Rb = 1000;        % 比特率 (bit/s)
fs = 100000;      % 采样率 (Hz)
fc = 25000;       % 载波频率 (Hz)
Nb = 20;          % 比特数
A  = 1;           % 信号幅度

% 生成随机比特序列
% data = randi([0 1], 1, Nb);    
% 生成交错比特序列: 0,1,0,1,...
data = repmat([0 1], 1, Nb/2);    

% BPSK 映射 (0 -> -1, 1 -> +1)
symbols = 2*data - 1;

% 每个比特的采样点数
Ns = fs/Rb;

% 上采样，把符号扩展成时域序列
tx_baseband = rectpulse(symbols, Ns);

% 时间向量
t = (0:length(tx_baseband)-1)/fs;

% 调制到载波
tx_passband = A * tx_baseband .* cos(2*pi*fc*t);

% 绘制信号
figure;
subplot(3,1,1);
stem(data, 'filled');
title('原始比特序列');
ylim([-0.5 1.5]);

subplot(3,1,2);
plot(t, tx_baseband);
title('基带 BPSK 波形');
xlabel('时间 (s)'); ylabel('幅度');

subplot(3,1,3);
plot(t, tx_passband);
title('已调 BPSK 信号');
xlabel('时间 (s)'); ylabel('幅度');

rm.rfsa.spectrum(tx_passband, fs);
